#include "APP_Runner.h"
#include "signal.h"

static int is_running = 1;
static void APP_Running_Stop(int sig)
{
    is_running = 0;
}

//程序的入口函数
int APP_Runner_Init(void)
{
    //注册两个信号   
    signal(SIGINT,APP_Running_Stop);//ctrl+c命令
    signal(SIGTERM,APP_Running_Stop);//kill命令

    //线程池初始化
    APP_Pool_Init();
    //mqtt初始化
    APP_MQTT_Init();
    //路由初始化
    APP_Router_Init();
    //设备初始化
    Device* device = APP_Device_Init(DEVICE_FILE);
    //串口初始化
    APP_Serial_Init(device);
    //蓝牙初始化
    APP_BT_Init(device);
    //注册设备到 路由模块
    APP_Router_register_Device(device);
    //死循环
    while(is_running)
    {
        sleep(1);
    }

    //停止运行时 资源释放工作
    APP_Router_Destroy();//释放网关相关资源
    APP_MQTT_Close();//释放mqtt客户端资源
    APP_Pool_Destroy();//销毁线程池
    return 0;
}
